package com.briup.es.auth;

/**
 * 存储当前登录用户的id
 */
public class SecurityUserContext {
    private static final ThreadLocal<Integer> USER_THREAD_LOCAL = new ThreadLocal<>();

    public static void setCurrentUserId(Integer userId){
        USER_THREAD_LOCAL.set(userId);
    }

    /**
     * 获取当前登录用户数据
     * @return Integer 当前登录用户的id
     */
    public static Integer currentUserId(){
        return USER_THREAD_LOCAL.get();
    }

    public static void clear(){
        // 当请求任务结束后，需要注意清除本线程中存储的 当前用户数据，否则可能出现内存泄露的风险
        USER_THREAD_LOCAL.remove();
    }
}
